package main.java.BLT;

import java.util.List;

import main.java.Utiles.Cadenas;




public class Especial extends Carta {

	private String requiere;

	
	public Especial(String nombre, Integer valor, String requiere) {
		super(nombre,valor);
		if(!(requiere.equals("Artillery") || requiere.equals("Cavalry") || requiere.equals("Guard") || requiere.equals(""))){
			throw new IllegalArgumentException("El ejercito requerido no es valido");
		}
		this.requiere = requiere;
	}
	
	public Especial(String s){
		super(s);
		List<String> ls = Cadenas.separaElementos(s, ",");
		if(ls.size()!=3){
			throw new IllegalArgumentException("Cadena no válida");
		}
		Integer valor;
		if(ls.get(1).equals("infinity")){
			valor = Integer.MAX_VALUE;
		}else{
			valor = new Integer(ls.get(1));
		}
		String requiere = ls.get(2);
		if(valor<0){
			throw new IllegalArgumentException("Valor del lider no válido");
		}
		if(!(requiere.equals("Artillery") || requiere.equals("Cavalry") || requiere.equals("Guard") || requiere.equals(" "))){
			throw new IllegalArgumentException("El ejercito requerido no es valido");
		}
		this.requiere = requiere;
		
	}

	public String getRequiere() {
		return requiere;
	}

	public void setRequiere(String requiere) {
		if(!(requiere.equals("Artillery") || requiere.equals("Cavalry") || requiere.equals("Guard"))){
			throw new IllegalArgumentException("El ejercito requerido no es valido");
		}
		this.requiere = requiere;
	}

	public String toString() {
		return  super.getNombre()+" ("
		+ super.getValor()+")";
	}


}
